1. Field of the Invention
The present invention relates to a computer program and apparatus for updating installed software, and more particularly to a computer program and apparatus for use in an information processing device to update installed software programs to a specified new version.
2. Description of the Related Art
Information processing devices operate with various software programs installed on them to provide specific processing functions. Those programs are updated or upgraded to a new version from time to time as necessary. The user of an information processing device installs a new version of software to solve software-related problems, if any, or add a desired function to his/her device. One way of doing this is to replace the entire software files with those of a new version. This update method is referred to herein as “full update.” Another way is to install only a fraction of the software files that differ from an existing old version. This method is referred to herein as “partial update.” Software update kits are made available for installation in either of those two ways.
The full update method may not be efficient since it generally involves a complete rewrite of large amounts of data including unchanged files, which do not really need update. By contrast, the partial update method only updates revised files, thus reducing the amount of data to be rewritten. One drawback of this partial update method is that the user has to apply multiple sets of difference files in the case where the currently installed version is several generations older than the desired new version. Suppose, for example, that the current software needs an update from version 1 to version 3. The user has first to install a set of difference files to update the version-1 software to version 2. Then he/she installs another set of difference files to update the version-2 software to version 3. Repeating incremental updates in this way is complicated and burdensome.
To alleviate the above-described drawback of conventional update methods, there is proposed a software installer that produces difference files for each revision step and determines a combination of difference files required to update a specific old version to a specific new version. See, for example, Japanese Unexamined Patent Application Publication No. 10-260820 (1998). This method, however, is not always an optimal solution in terms of total update processing time.
As mentioned earlier, the partial update method is advantageous, on one hand, over the full update method since it can perform an update with a smaller amount of write data. The partial update method, on the other hand, has to determine or seek the write address of each individual difference file. It also takes time to combine or divide difference files. For this reason, the update processing time of a partial update process could be longer than expected, in the case where the update includes a large number of program components that should be replaced. The full update method is free from this kind of overhead. It is sometimes faster than partial update, depending on the number of revised components, the data size of difference files, network bandwidth, computer performance, and the like. Conventional software update tools, however, are unable to choose an appropriate method in terms of total update processing time.
Some types of information processing devices, such as car navigation system stations and mobile phones, operate with a plurality of software versions installed therein. This kind of device needs to switch its software functions depending on the purpose and thus has to maintain two or more versions of the same software program, updating them independently. When updating the existing oldest version to the latest one, the device downloads every necessary difference file from a management server, regardless of whether some of those difference files exist in the storage areas of other versions. As a result, the device downloads a large amount of difference files from a management server and thus consumes a long time to apply them to the oldest version.